Maintaining Doubly-Linked List Invariants in Shape Analysis with Local Reasoning
نویسندگان
چکیده
This paper presents a novel shape analysis algorithm with local reasoning that is designed to analyze heap structures with structural invariants, such as doubly-linked lists. The algorithm abstracts and analyzes one single heap cell at a time. In order to maintain the structural invariants, the analysis uses a local heap abstraction that models the sub-heap consisting of one cell and its immediate neighbors. The proposed algorithm can successfully analyze standard doublylinked list manipulations.
منابع مشابه
Maintaining Structural Invariants in Shape Analysis with Local Reasoning
This paper presents a novel shape analysis algorithm with local reasoning that is designed to analyze heap structures with structural invariants, such as doubly-linked lists. The algorithm abstracts and analyzes one single heap cell at a time. In order to maintain the structural invariants, the analysis uses a local heap abstraction that models the sub-heap consisting of one cell and its immedi...
متن کاملProperty-Directed Shape Analysis
This paper addresses the problem of automatically generating quantified invariants for programs that manipulate singly and doubly linked-list data structures. Our algorithm is property-directed—i.e., its choices are driven by the properties to be proven. The algorithm is able to establish that a correct program has no memory-safety violations—e.g., null-pointer dereferences, double frees—and th...
متن کاملAssertions for Dynamic Shape Analysis of List Data Structures
We introduce an assertion language for run-time checking of linked list data structure shapes. The assertion language is expressive enough to define characteristic predicates for data structures created with the use of pointers and dynamic memory allocation. Examples of such data structures include singly linked list, binary tree, doubly linked list, and cyclic list. These characteristic predic...
متن کاملEffectively-Propositional Reasoning about Reachability in Linked Data Structures
This paper proposes a novel method of harnessing existing SAT solvers to verify reachability properties of programs that manipulate linked-list data structures. Such properties are essential for proving program termination, correctness of data structure invariants, and other safety properties. Our solution is complete, i.e., a SAT solver produces a counterexample whenever a program does not sat...
متن کاملMonotonic Abstraction for Programs with Multiply-Linked Structures
We investigate the use of monotonic abstraction and backward reachability analysis as means of performing shape analysis on programs with multiply pointed structures. By encoding the heap as a vertexand edge-labeled graph, we can model the low level behaviour exhibited by programs written in the C programming language. Using the notion of signatures, which are predicates that define sets of hea...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007